interface Res {
  status_code: number;
  status_msg: string;
}

interface BroadcastReq {
  type: string;
  id: string;
}
interface BroadcastRes extends Res {
  data: {
    id: string;
    type: number;
    content: string;
  };
}

interface StockdiagnosisReq {
  stock_code: string;
}
interface StockdiagnosisRes extends Res {
  data: {
    stock_code: string;
    stock_name: string;
    fundamental_analysis: string;
    market_analysis: string;
    ai_analyses: {
      trend_analysis: string;
      activity_analysis: string;
      capital_analysis: string;
    };
    operate_advice: string;
    pick_time: string;
    disclaimer: string;
  };
}

interface SearchStockReq {
  reqLockKey: 'reqSearchStock';
  appname: 'fastApplication';
  pattern: string;
}
interface SearchStockRes extends Res {
  errorcode: string;
  msg: string;
  data: {
    stockCode: string;
    stockName: string;
    spell: string;
    marketId: string;
    func: string;
    marketName: string;
  }[];
}

interface IsShowRes extends Res {
  data: boolean;
}

export type {
  BroadcastReq,
  BroadcastRes,
  StockdiagnosisReq,
  StockdiagnosisRes,
  SearchStockReq,
  SearchStockRes,
  IsShowRes
};
